#include <stdio.h>

struct Node {
    int val;
    int numChildren;
    struct Node** children;
};

// 递归 - 前序遍历
void preOrder(struct Node *root) {
    if (root == NULL) return;
    printf("%d\n", root->val);
    // 多次递归调用
    for (int i = 0; i < root->numChildren; i++) {
        preOrder(root->children[i]);
    }
}

// 递归 - 后序遍历
void postOrder(struct Node *root) {
    if (root == NULL) return;

    // 多次递归调用
    for (int i = 0; i < root->numChildren; i++) {
        preOrder(root->children[i]);
    }

    printf("%d\n", root->val);
}

int main(void) {

    return 0;
}
